package com.iwuyc.tools.commons.system;

import lombok.Getter;
import lombok.ToString;

@Getter
@ToString
public enum SystemEnvKey {


    // region runtime信息
    /**
     * Java 运行时环境规范名称
     */
    SPECIFICATION_NAME("java.specification.name"),
    /**
     * Java 运行时环境版本
     */
    VERSION("java.version"),
    /**
     * Java 运行时环境规范版本
     */
    SPECIFICATION_VERSION("java.specification.version"),
    /**
     * Java 运行时环境供应商
     */
    VENDOR("java.vendor"),
    /**
     * Java 运行时环境规范供应商
     */
    SPECIFICATION_VENDOR("java.specification.vendor"),
    /**
     * Java 供应商的 URL
     */
    VENDOR_URL("java.vendor.url"),
    /**
     * Java 安装目录
     */
    HOME("java.home"),
    /**
     * 加载库时搜索的路径列表
     */
    LIBRARY_PATH("java.library.path"),
    /**
     * 默认的临时文件路径
     */
    TMPDIR("java.io.tmpdir"),
    /**
     * 要使用的 JIT 编译器的名称
     */
    COMPILER("java.compiler"),
    /**
     * 一个或多个扩展目录的路径
     */
    EXT_DIRS("java.ext.dirs"),
    // endregion Java运行时环境信息

    // region vm信息
    /**
     * Java 虚拟机实现名称
     */
    VM_NAME("java.vm.name"),
    /**
     * Java 虚拟机规范名称
     */
    VM_SPECIFICATION_NAME("java.vm.specification.name"),
    /**
     * Java 虚拟机实现版本
     */
    VM_VERSION("java.vm.version"),
    /**
     * 虚拟机信息
     */
    VM_INFO("java.vm.info"),
    /**
     * Java 虚拟机规范版本
     */
    VM_SPECIFICATION_VERSION("java.vm.specification.version"),
    /**
     * Java 虚拟机实现供应商
     */
    VM_VENDOR("java.vm.vendor"),
    /**
     * Java 虚拟机规范供应商
     */
    VM_SPECIFICATION_VENDOR("java.vm.specification.vendor"),
    // endregion Java虚拟机信息

    // region Java类信息
    /**
     * Java 类格式版本号
     */
    CLASS_VERSION("java.class.version"),
    /**
     * Java 类路径
     */
    CLASS_PATH("java.class.path"),
    // endregion Java类信息

    // region OS信息
    /**
     * 操作系统的名称
     */
    OS_NAME("os.name"),
    /**
     * 操作系统的架构
     */
    OS_ARCH("os.arch"),
    /**
     * 操作系统的版本
     */
    OS_VERSION("os.version"),
    /**
     * 文件分隔符（在 UNIX 系统中是“/”）
     */
    FILE_SEPARATOR("file.separator"),
    /**
     * 路径分隔符（在 UNIX 系统中是“:”）
     */
    PATH_SEPARATOR("path.separator"),
    /**
     * 行分隔符（在 UNIX 系统中是“\n”）
     */
    LINE_SEPARATOR("line.separator"),
    // endregion OS信息

    // region 用户信息
    /**
     * 用户的账户名称
     */
    USER_NAME("user.name"),
    /**
     * 用户的主目录
     */
    USER_HOME("user.home"),
    /**
     * 用户的当前工作目录
     */

    USER_DIR("user.dir"),
    /**
     * 用于语言
     */
    USER_LANGUAGE("user.language"),
    /**
     * 用户国家
     */
    USER_COUNTRY("user.country"),
    /**
     * 用户地区
     */
    USER_REGION("user.region")
    // endregion 用户信息
    ;


    private final String key;

    SystemEnvKey(String key) {
        this.key = key;
    }
}
